home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / mc / extfs / lslR < prev    next >
Text File  |  2009-10-25  |  1KB  |  53 lines

  1. #! /bin/sh
  2.  
  3. # Based on previous version of lslR
  4. # Modified by Tomas Novak <tnovak@ipex.cz>   April 2000
  5. #   (to allow spaces in filenames)
  6. #
  7. # It's assumed that lslR was generated in C locale.
  8. LC_ALL=C
  9. export LC_ALL=C
  10.  
  11. AWK=mawk
  12.  
  13. mclslRfs_list () {
  14. case "$1" in
  15.   *.lzma) MYCAT="lzma -dc";;
  16.   *.bz2) MYCAT="bzip2 -dc";;
  17.   *.gz)  MYCAT="gzip -dc";;
  18.   *.z)   MYCAT="gzip -dc";;
  19.   *.Z)   MYCAT="gzip -dc";;
  20.   *)     MYCAT="cat";;
  21. esac
  22.  
  23. $MYCAT "$1" | $AWK '
  24. BEGIN {
  25.   dir="";
  26.   # Pattern to match 8 first fields.
  27.   rx = "[^     ]+[     ]+";
  28.   rx = "^" rx rx rx rx rx rx rx rx;
  29. }
  30. /^total\ [0-9]*$/ { next }
  31. /^$/ { next }
  32. /^[^     ].*:$/ {
  33.   if ($0 ~ /^\//) dir=substr($0, 2);
  34.   else dir=$0;
  35.   if (dir ~ /\/:$/) sub(/:$/, "", dir);
  36.   else sub(/:$/, "/", dir);
  37.   next;
  38. }
  39. ( $9 != "" ) {
  40.   # gensub() is not portable.
  41.   name=$0
  42.   sub(rx, "", name)
  43.   # Cannot assign to $9, or spaces in the filename would be reduced.
  44.   attr=substr($0, 1, length($0)-length(name))
  45.   printf "%s%s%s\n", attr, dir, name
  46. }' 
  47. }
  48.  
  49. case "$1" in
  50.   list) mclslRfs_list "$2"; exit 0;;
  51. esac
  52. exit 1
  53.